module value_types();

reg      data_reg;      // 4-state, 1 bit,  unsigned, default 'x'
wire     data_wire;     // 4-state, 1 bit,  unsigned, default 'z'
logic    data_logic;    // 4-state, 1 bit,  unsigned, default 'x'
integer  data_integer;  // 4-state, 32 bit, signed,   default 'x'
time     data_time;     // 4-state, 64 bit, unsigned, default 'x'

bit      data_bit;      // 2-state, 1 bit,  unsigned, default '0'
byte     data_byte;     // 2-state, 8 bit,  signed,   default '0'
shortint data_shortint; // 2-state, 16 bit, signed,   default '0'
int      data_int;      // 2-state, 32 bit, signed,   default '0'
longint  data_longint;  // 2-state, 64 bit, signed,   default '0'
real     data_real;     // 2-state, 64 bit, unsigned, default '0'

initial begin
   $display("4-state data types:");
   $display("Test data_reg: %b", data_reg);
   $display("Test data_wire: %b", data_wire);
   $display("Test data_logic: %b", data_logic);
   $display("Test data_integer: %b", data_integer);
   $display("Test data_time: %b", data_time);
   $display("\n");
   $display("2-state data types:");
   $display("Test data_bit: %b", data_bit);
   $display("Test data_byte: %b", data_byte);
   $display("Test data_shortint: %b", data_shortint);
   $display("Test data_int: %b", data_int);
   $display("Test data_longint: %b", data_longint);
   $display("Test data_real: %b", data_real);
   #1 $finish;
end

endmodule